/**
 * Vite 配置文件
 * 
 * 功能概述：
 * 1. 配置 React 开发环境
 * 2. 设置开发服务器代理
 * 3. 配置移动端适配方案
 * 4. 优化构建和开发体验
 * 
 * 技术特点：
 * - 使用 Vite 作为构建工具
 * - 集成 React 插件
 * - 配置 px 到 vw 的自动转换
 * - 设置 API 代理服务器
 * - 移动端响应式适配
 */

// 导入 Vite 核心配置函数
import { defineConfig } from 'vite'
// 导入 React 插件，用于支持 JSX 和 React 开发
import react from '@vitejs/plugin-react'
// 注意：PostCSS 配置已移至独立的 postcss.config.js 文件
// 该文件使用双插件实例实现更精确的移动端适配

// Vite 配置文件
// 参考文档：https://vite.dev/config/
export default defineConfig({
  // ==================== 插件配置 ====================
  // 配置 Vite 插件，用于扩展构建功能
  
  /**
   * 插件列表
   * 
   * 配置项目使用的 Vite 插件
   * - react(): 支持 React 开发，包括 JSX 转换、热更新等
   */
  plugins: [react()],

  // ==================== 开发服务器配置 ====================
  // 配置开发服务器的各种选项
  
  /**
   * 开发服务器配置
   * 
   * 配置本地开发服务器的行为
   * 包括代理设置、端口配置、热更新等
   */
  server: {
    /**
     * 代理配置
     * 
     * 配置 API 请求代理，解决开发时的跨域问题
     * 将 /api 开头的请求代理到后端服务器
     */
    proxy: {
      /**
       * API 代理配置
       * 
       * 代理规则：
       * - 匹配路径：/api 开头的所有请求
       * - 目标服务器：http://10.59.9.18/
       * - 路径重写：移除 /api 前缀
       * - 超时设置：30秒
       */
      '/api': {
        target: 'http://10.59.9.18/',  // 后端服务器地址
        changeOrigin: true,            // 修改请求头中的 Origin
        rewrite: (path) => path.replace(/^\/api/, ''),  // 路径重写，移除 /api 前缀
        timeout: 30000                 // 请求超时时间（毫秒）
      },
      '/fanyi': {
        target: 'https://openapi.youdao.com/llmgateway/api/v1/chat/completions',  // 后端服务器地址（旧）
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/fanyi/, ''),
        timeout: 30000
      },
      // 深信（有道）DeepSeek 代理，避免开发环境 CORS
      // 直接把 /youdao 映射到完整路径，避免路径拼接差异导致 404
      '/youdao': {
        target: 'https://openapi.youdao.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/youdao/, '/llmgateway/api/v1/chat/completions'),
        timeout: 30000
      }
      ,
      // 列出可用模型
      '/youdao_models': {
        target: 'https://openapi.youdao.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/youdao_models/, '/llmgateway/api/v1/models'),
        timeout: 30000
      },
      // 百度智能云人脸识别API代理，解决CORS
      '/baidu-face': {
        target: 'https://aip.baidubce.com',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/baidu-face/, ''),
        timeout: 30000
      }
    }
  },

  // ==================== CSS 处理配置 ====================
  // 配置 CSS 的预处理和后处理
  
  /**
   * CSS 配置
   * 
   * 配置 CSS 的处理方式，包括预处理器、后处理器等
   * 注意：PostCSS 配置已移至独立的 postcss.config.js 文件
   * 该文件使用双插件实例实现宽度(vw)和高度(vh)的分别适配
   */
  css: {
    /**
     * PostCSS 配置
     * 
     * 使用独立的 postcss.config.js 配置文件
     * 实现更精确的移动端适配策略
     */
    postcss: './postcss.config.cjs'
  }
})
